home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / C / Games / Xconq 7.1.0 / src / xconq-7.1.0 / kernel / ui.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-07-07  |  6.0 KB  |  149 lines  |  [TEXT/R*ch]

  1. /* Definitions for graphics support not specific to any interface.
  2.    Copyright (C) 1993, 1994, 1995 Stanley T. Shebs.
  3.  
  4. Xconq is free software; you can redistribute it and/or modify
  5. it under the terms of the GNU General Public License as published by
  6. the Free Software Foundation; either version 2, or (at your option)
  7. any later version.  See the file COPYING.  */
  8.  
  9. #define NUMPOWERS 8
  10.  
  11. typedef struct a_vp {
  12.     short sx, sy;        /* lower left corner of the viewport, in pixels */
  13.     int   totsw, totsh;        /* total size of the map in pixels */
  14.     short pxw, pxh;        /* size of window in pixels */
  15.     short power;        /* index to this map's magnification */
  16.     short mag;            /* magnification of each cell (a power of 2) */
  17.     short vcx, vcy;        /* center of the view */
  18.     short hw, hh;        /* pixel dims of a cell */
  19.     short hch;            /* height of cell cell between centers */
  20.     short uw, uh;        /* pixel dims of unit subcell */
  21.     short angle;        /* Angle of perspective view. */
  22.     short cellwidth;
  23.     short vertscale;
  24. } VP;
  25.  
  26. typedef struct a_legend {
  27.     int ox, oy;            /* starting point */
  28.     int dx, dy;            /* displacement */
  29.     float angle, dist;        /* polar displacement (redundant, but useful) */
  30. } Legend;
  31.  
  32. #define hexagon_adjust(v) (area.xwrap ? 0 : (area.halfheight * (v)->hw) / 2)
  33.  
  34. #define REDRAW_CHAR '\001'
  35. #define BACKSPACE_CHAR '\010'
  36. #define ESCAPE_CHAR '\033'
  37. #define DELETE_CHAR 0x7f
  38.  
  39. extern short mags[], hws[], hhs[], hcs[], uws[], uhs[];
  40.  
  41. extern short bwid[], bwid2[], cwid[];
  42.  
  43. extern short bsx[NUMPOWERS][7], bsy[NUMPOWERS][7];
  44. extern short lsx[NUMPOWERS][6], lsy[NUMPOWERS][6];
  45.  
  46. extern short qx[NUMPOWERS][7], qy[NUMPOWERS][7];
  47.  
  48. extern char *dirchars;
  49.  
  50. extern ImageFamily *unseen_image;
  51.  
  52. extern char *terrchars;
  53. extern char *unitchars;
  54. extern char unseen_char_1, unseen_char_2;
  55.  
  56. extern Module **possible_games;
  57.  
  58. extern int numgames;
  59.  
  60. /* Function declarations. */
  61.  
  62. extern void collect_possible_games PARAMS ((void));
  63. extern void add_to_possible_games PARAMS ((Module *module));
  64.  
  65. extern void parse_long_name_command PARAMS ((char *cmdstr, char **namep, char **argp, char *buf));
  66.  
  67. extern VP *new_vp PARAMS ((void));
  68.  
  69. extern void xform_cell PARAMS ((VP *vp, int x, int y, int *sxp, int *syp));
  70. extern void xform_unit PARAMS ((VP *vp, Unit *unit, int *sxp, int *syp, int *swp, int *shp));
  71. extern void xform_unit_self PARAMS ((VP *vp, Unit *unit, int *sxp, int *syp, int *swp, int *shp));
  72. extern void xform_occupant PARAMS ((VP *vp, Unit *transport, Unit *unit, int sx, int sy, int sw, int sh, int *sxp, int *syp, int *swp, int *shp));
  73.  
  74. extern void scale_vp PARAMS ((VP *vp, VP *vp2, int *sxp, int *syp, int *swp, int *shp));
  75.  
  76. extern int nearest_cell PARAMS ((VP *vp, int sx, int sy, int *xp, int *yp));
  77. extern int nearest_boundary PARAMS ((VP *vp, int sx, int sy, int *xp, int *yp, int *dirp));
  78. extern int nearest_unit PARAMS ((VP *vp, int sx, int sy, Unit **unitp));
  79.  
  80. extern int cell_is_visible PARAMS ((VP *vp, int x, int y));
  81. extern int unit_is_visible PARAMS ((VP *vp, Unit *unit));
  82. extern int cell_is_in_middle PARAMS ((VP *vp, int x, int y));
  83.  
  84. extern int set_view_size PARAMS ((VP *vp, int w, int h));
  85. extern int set_view_position PARAMS ((VP *vp, int sx, int sy));
  86. extern int set_view_power PARAMS ((VP *vp, int power));
  87. extern int set_view_angle PARAMS ((VP *vp, int angle));
  88. extern int set_view_direction PARAMS ((VP *vp, int dir));
  89. extern int set_view_focus PARAMS ((VP *vp, int x, int y));
  90. extern void center_on_focus PARAMS ((VP *vp));
  91. extern void focus_on_center PARAMS ((VP *vp));
  92.  
  93. extern void compute_fire_line_segment PARAMS ((int sx1, int sy1, int sx2, int sy2,
  94.                            int i, int n,
  95.                            int *xx, int *yy, int *dx, int *dy));
  96.  
  97. extern void place_feature_legends
  98.   PARAMS ((Legend *leg, int nf, Side *side, int orient, int block));
  99.  
  100. extern Unit *find_unit_or_occ PARAMS ((VP *vp, Unit *unit, int usx, int usy, int usw, int ush, int sx, int sy));
  101. extern Unit *find_unit_at PARAMS ((VP *vp, int x, int y, int sx, int sy));
  102.  
  103. extern void pick_a_focus PARAMS ((Side *side, int *xp, int *yp));
  104.  
  105. extern Unit *autonext_unit PARAMS ((Side *side, Unit *unit));
  106. extern int in_box PARAMS ((int x, int y, int lx, int ly, int w, int h));
  107. extern Unit *autonext_unit_inbox PARAMS ((Side *side, Unit *unit, VP *vp));
  108. extern int could_be_next_unit PARAMS ((Unit *unit));
  109.  
  110. extern Unit *find_next_occupant PARAMS ((Unit *unit));
  111.  
  112. extern int num_active_displays PARAMS ((void));
  113.  
  114. extern int char_to_dir PARAMS ((int ch, int *dir1p, int *dir2p, int *modp));
  115. extern int advance_into_cell PARAMS ((Side *side, Unit *unit, int x, int y,
  116.                 Unit *other));
  117.  
  118. extern int give_supplies PARAMS ((Unit *unit, short *amts, short *rslts));
  119. extern int take_supplies PARAMS ((Unit *unit, short *amts, short *rslts));
  120.  
  121. extern int disband_unit PARAMS ((Side *side, Unit *unit));
  122. extern int favored_type PARAMS ((Unit *unit));
  123.  
  124. extern ImageFamily *get_unit_type_images PARAMS ((Side *side, int u,
  125.                          void (*interp_hook)(ImageFamily *imf),
  126.                          void (*load_hook)(ImageFamily *imf),
  127.                          void (*default_hook)(ImageFamily *imf, int u, char *name)));
  128. extern ImageFamily *get_terrain_type_images PARAMS ((Side *side, int t,
  129.                             void (*interp_hook)(ImageFamily *imf),
  130.                             void (*load_hook)(ImageFamily *imf),
  131.                             void (*default_hook)(ImageFamily *imf, int u, char *name)));
  132. extern ImageFamily *get_unseen_images PARAMS ((Side *side,
  133.                             void (*interp_hook)(ImageFamily *imf),
  134.                             void (*load_hook)(ImageFamily *imf),
  135.                             void (*default_hook)(ImageFamily *imf, char *name)));
  136. extern ImageFamily *get_emblem_images PARAMS ((Side *side, Side *side2,
  137.                           void (*interp_hook)(ImageFamily *imf),
  138.                           void (*load_hook)(ImageFamily *imf),
  139.                           void (*default_hook)(ImageFamily *imf, int u, char *name)));
  140.  
  141. extern void record_imf_get PARAMS ((ImageFamily *imf));
  142.  
  143. extern void init_ui_chars PARAMS ((void));
  144. extern void dump_text_view PARAMS ((Side *side, int use_both));
  145.  
  146. extern int terrain_seen_at PARAMS ((Side *side, int x, int y));
  147. extern Unit *unit_seen_at PARAMS ((Side *side, int x, int y));
  148. extern int utype_seen_at PARAMS ((Side *side, int x, int y));
  149.